package com.ruoyi.order.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户订单对象 t_user_item_order
 * 
 * @author ruoyi
 * @date 2025-04-09
 */
public class UserItemOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单表pk */
    private Integer id;

    /** 父订单号（如果是加钟或升级订单 父订单号为原订单号） */
    @Excel(name = "父订单号", readConverterExp = "如=果是加钟或升级订单,父=订单号为原订单号")
    private String partnerOrderNo;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderNo;

    /** 微信侧订单号 */
    private String transactionId;

    /** 用户id */
    @Excel(name = "用户id")
    private Long userId;

    /** 技师id */
    @Excel(name = "技师id")
    private Long tid;

    /** 项目id */
    @Excel(name = "项目id")
    private Long itemId;

    /** 项目规格id */
    @Excel(name = "项目规格id")
    private Long itemSpecsId;

    /** 项目名 */
    @Excel(name = "项目名")
    private String itemName;

    /** 项目图 */
    @Excel(name = "项目图")
    private String itemPicture;

    /** 项目时长（分钟） */
    @Excel(name = "项目时长", readConverterExp = "分=钟")
    private Integer itemTime;

    /** 地址ID */
    @Excel(name = "地址ID")
    private Long addressId;

    /** 联系人 */
    @Excel(name = "联系人")
    private String addressUserName;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String addressTel;

    /** 服务地点 */
    @Excel(name = "服务地点")
    private String addressDetail;

    /** 服务时间 */
    @Excel(name = "服务时间")
    private String serviceTime;

    /** 需要付款金额 */
    @Excel(name = "需要付款金额")
    private BigDecimal needPayPrice;

    /** 订单总金额（实付） */
    @Excel(name = "订单总金额", readConverterExp = "实=付")
    private BigDecimal orderTotalPrice;

    /** 出行方式 */
    @Excel(name = "出行方式")
    private String modeTravel;

    /** 项目价格 */
    @Excel(name = "项目价格")
    private BigDecimal orderItemPrice;

    /** 出行车费 */
    @Excel(name = "出行车费")
    private BigDecimal orderFarePrice;

    /** 共优惠金额 */
    @Excel(name = "共优惠金额")
    private BigDecimal discountPrice;

    /** 是否使用优惠券 */
    @Excel(name = "是否使用优惠券")
    private Integer isUserCoupon;

    /** 用户优惠券id */
    @Excel(name = "用户优惠券id")
    private Long userCouponId;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private String payType;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date placeOrderTime;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /** 下单数量 */
    @Excel(name = "下单数量")
    private Integer orderNum;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private Integer orderStatus;

    /** 订单类型 */
    @Excel(name = "订单类型")
    private Integer orderType;

    /** 是否开通会员 */
    @Excel(name = "是否开通会员")
    private Integer isOpenMembership;

    /** 会员ID */
    @Excel(name = "会员ID")
    private Long openMemberId;

    /** 会员开通金额 */
    @Excel(name = "会员开通金额")
    private BigDecimal openMemberPrice;

    /** 用户和技师之间的距离（单位：km） */
    @Excel(name = "用户和技师之间的距离", readConverterExp = "单=位：km")
    private BigDecimal distance;

    /** 技师出发位置 */
    @Excel(name = "技师出发位置")
    private String leaveAddress;

    /** 订单备注 */
    @Excel(name = "订单备注")
    private String orderRemark;

    /** 订单是否异常 */
    @Excel(name = "订单是否异常")
    private Integer isException;

    /** 逻辑删除（0=未删除，1=已删除） */
    private Integer isDelete;

    public void setId(Integer id) 
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }
    public void setPartnerOrderNo(String partnerOrderNo) 
    {
        this.partnerOrderNo = partnerOrderNo;
    }

    public String getPartnerOrderNo() 
    {
        return partnerOrderNo;
    }
    public void setOrderNo(String orderNo) 
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo() 
    {
        return orderNo;
    }
    public void setTransactionId(String transactionId) 
    {
        this.transactionId = transactionId;
    }

    public String getTransactionId() 
    {
        return transactionId;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setTid(Long tid) 
    {
        this.tid = tid;
    }

    public Long getTid() 
    {
        return tid;
    }
    public void setItemId(Long itemId) 
    {
        this.itemId = itemId;
    }

    public Long getItemId() 
    {
        return itemId;
    }
    public void setItemSpecsId(Long itemSpecsId) 
    {
        this.itemSpecsId = itemSpecsId;
    }

    public Long getItemSpecsId() 
    {
        return itemSpecsId;
    }
    public void setItemName(String itemName) 
    {
        this.itemName = itemName;
    }

    public String getItemName() 
    {
        return itemName;
    }
    public void setItemPicture(String itemPicture) 
    {
        this.itemPicture = itemPicture;
    }

    public String getItemPicture() 
    {
        return itemPicture;
    }
    public void setItemTime(Integer itemTime) 
    {
        this.itemTime = itemTime;
    }

    public Integer getItemTime() 
    {
        return itemTime;
    }
    public void setAddressId(Long addressId) 
    {
        this.addressId = addressId;
    }

    public Long getAddressId() 
    {
        return addressId;
    }
    public void setAddressUserName(String addressUserName) 
    {
        this.addressUserName = addressUserName;
    }

    public String getAddressUserName() 
    {
        return addressUserName;
    }
    public void setAddressTel(String addressTel) 
    {
        this.addressTel = addressTel;
    }

    public String getAddressTel() 
    {
        return addressTel;
    }
    public void setAddressDetail(String addressDetail) 
    {
        this.addressDetail = addressDetail;
    }

    public String getAddressDetail() 
    {
        return addressDetail;
    }
    public void setServiceTime(String serviceTime) 
    {
        this.serviceTime = serviceTime;
    }

    public String getServiceTime() 
    {
        return serviceTime;
    }
    public void setNeedPayPrice(BigDecimal needPayPrice) 
    {
        this.needPayPrice = needPayPrice;
    }

    public BigDecimal getNeedPayPrice() 
    {
        return needPayPrice;
    }
    public void setOrderTotalPrice(BigDecimal orderTotalPrice) 
    {
        this.orderTotalPrice = orderTotalPrice;
    }

    public BigDecimal getOrderTotalPrice() 
    {
        return orderTotalPrice;
    }
    public void setModeTravel(String modeTravel) 
    {
        this.modeTravel = modeTravel;
    }

    public String getModeTravel() 
    {
        return modeTravel;
    }
    public void setOrderItemPrice(BigDecimal orderItemPrice) 
    {
        this.orderItemPrice = orderItemPrice;
    }

    public BigDecimal getOrderItemPrice() 
    {
        return orderItemPrice;
    }
    public void setOrderFarePrice(BigDecimal orderFarePrice) 
    {
        this.orderFarePrice = orderFarePrice;
    }

    public BigDecimal getOrderFarePrice() 
    {
        return orderFarePrice;
    }
    public void setDiscountPrice(BigDecimal discountPrice) 
    {
        this.discountPrice = discountPrice;
    }

    public BigDecimal getDiscountPrice() 
    {
        return discountPrice;
    }
    public void setIsUserCoupon(Integer isUserCoupon) 
    {
        this.isUserCoupon = isUserCoupon;
    }

    public Integer getIsUserCoupon() 
    {
        return isUserCoupon;
    }
    public void setUserCouponId(Long userCouponId) 
    {
        this.userCouponId = userCouponId;
    }

    public Long getUserCouponId() 
    {
        return userCouponId;
    }
    public void setPayType(String payType) 
    {
        this.payType = payType;
    }

    public String getPayType() 
    {
        return payType;
    }
    public void setPlaceOrderTime(Date placeOrderTime) 
    {
        this.placeOrderTime = placeOrderTime;
    }

    public Date getPlaceOrderTime() 
    {
        return placeOrderTime;
    }
    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }
    public void setOrderNum(Integer orderNum) 
    {
        this.orderNum = orderNum;
    }

    public Integer getOrderNum() 
    {
        return orderNum;
    }
    public void setOrderStatus(Integer orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public Integer getOrderStatus() 
    {
        return orderStatus;
    }
    public void setOrderType(Integer orderType) 
    {
        this.orderType = orderType;
    }

    public Integer getOrderType() 
    {
        return orderType;
    }
    public void setIsOpenMembership(Integer isOpenMembership) 
    {
        this.isOpenMembership = isOpenMembership;
    }

    public Integer getIsOpenMembership() 
    {
        return isOpenMembership;
    }
    public void setOpenMemberId(Long openMemberId) 
    {
        this.openMemberId = openMemberId;
    }

    public Long getOpenMemberId() 
    {
        return openMemberId;
    }
    public void setOpenMemberPrice(BigDecimal openMemberPrice) 
    {
        this.openMemberPrice = openMemberPrice;
    }

    public BigDecimal getOpenMemberPrice() 
    {
        return openMemberPrice;
    }
    public void setDistance(BigDecimal distance) 
    {
        this.distance = distance;
    }

    public BigDecimal getDistance() 
    {
        return distance;
    }
    public void setLeaveAddress(String leaveAddress) 
    {
        this.leaveAddress = leaveAddress;
    }

    public String getLeaveAddress() 
    {
        return leaveAddress;
    }
    public void setOrderRemark(String orderRemark) 
    {
        this.orderRemark = orderRemark;
    }

    public String getOrderRemark() 
    {
        return orderRemark;
    }
    public void setIsException(Integer isException) 
    {
        this.isException = isException;
    }

    public Integer getIsException() 
    {
        return isException;
    }
    public void setIsDelete(Integer isDelete) 
    {
        this.isDelete = isDelete;
    }

    public Integer getIsDelete() 
    {
        return isDelete;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("partnerOrderNo", getPartnerOrderNo())
            .append("orderNo", getOrderNo())
            .append("transactionId", getTransactionId())
            .append("userId", getUserId())
            .append("tid", getTid())
            .append("itemId", getItemId())
            .append("itemSpecsId", getItemSpecsId())
            .append("itemName", getItemName())
            .append("itemPicture", getItemPicture())
            .append("itemTime", getItemTime())
            .append("addressId", getAddressId())
            .append("addressUserName", getAddressUserName())
            .append("addressTel", getAddressTel())
            .append("addressDetail", getAddressDetail())
            .append("serviceTime", getServiceTime())
            .append("needPayPrice", getNeedPayPrice())
            .append("orderTotalPrice", getOrderTotalPrice())
            .append("modeTravel", getModeTravel())
            .append("orderItemPrice", getOrderItemPrice())
            .append("orderFarePrice", getOrderFarePrice())
            .append("discountPrice", getDiscountPrice())
            .append("isUserCoupon", getIsUserCoupon())
            .append("userCouponId", getUserCouponId())
            .append("payType", getPayType())
            .append("placeOrderTime", getPlaceOrderTime())
            .append("payTime", getPayTime())
            .append("orderNum", getOrderNum())
            .append("orderStatus", getOrderStatus())
            .append("orderType", getOrderType())
            .append("isOpenMembership", getIsOpenMembership())
            .append("openMemberId", getOpenMemberId())
            .append("openMemberPrice", getOpenMemberPrice())
            .append("distance", getDistance())
            .append("leaveAddress", getLeaveAddress())
            .append("orderRemark", getOrderRemark())
            .append("isException", getIsException())
            .append("isDelete", getIsDelete())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
